1. Field of the Art
Generally, the present application relates to data processing. Specifically, the application is related to self-metering third-party services provided in a cloud computing environment.
2. Discussion of the Related Art
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources. These resources can include network connections, server processing power, storage, applications, services, and other resources in demand.
Many terms in cloud computing have either sprouted anew or taken on additional meaning as the concept of relying on an outside party with an offsite computer to store and process one's data becomes acceptable and more popular with businesses and the general public.
A “service” includes an autonomous unit of functionality in software representing a single action. A service provides interaction via a prescribed input and output protocol. Services can be built from a software component or series of components; however, services generally cannot embed other services within them.
A “component” includes a modular part of a software system that encapsulates its content and whose manifestation is replaceable within its environment. A component can define its behavior in terms of provided and required interfaces. Multiple components can be combined together to form aggregated portions of a system or other components.
A “tool” includes a grouping of components with a user-facing mechanism to perform a task.
A “package” includes a logical grouping of software elements to provide a namespace for the grouped elements. A package may contain other packages, thus providing for a hierarchical organization of packages. Packages typically contain elements from a single layer of an architecture.
A “sub-system” includes a grouping of elements to provide a physical implementation structure. A sub-system may contain other sub-systems. A sub-system is typically a manifestation of a package or packages associated with a physical system.
A “multi-tenant environment” includes a computing environment in which a single instance of a software application or software services runs on a server that concurrently executes for multiple client organizations (i.e., tenants). Such an environment keeps each client organization's variables separate, even when processing time and memory space are shared.
Multi-tenant cloud computing environments are typically set up by well capitalized companies with many resources. Among those resources are many software developers, network administrators, etc. who maintain and update the software services and applications that run on the cloud network. Complex, polished software suitable for mass use by customers of the cloud computing environment is the product of many internal employees' research, time, and labor.
More sophisticated cloud computing environments allow third-party developers to create plug-ins or other services for the applications running on the cloud network. Third-party developers are typically hired by the cloud computing companies to provide and update the third-party services, which are in turn used by tenant customers of the cloud service. The cloud service charges customers for the use of the service, centralizing control over who can and cannot access each service. The third-party developers and customers of the cloud network are essentially isolated from one another.
There is a need in the art for better, more efficient, and customizable cloud computing services that are scalable for large enterprises.